package com.skt.domain.VO;

import lombok.Builder;
import lombok.Value;

import java.time.LocalDateTime;

/**
 * 文件上传成功响应 VO
 * <p>
 * 所有字段均为只读，用于安全返回文件访问信息。
 * url 为受控代理地址或临时签名 URL，绝不暴露内部存储路径。
 * </p>
 */
@Value
@Builder
public class FileUploadVO {

    /**
     * 系统分配的文件唯一标识（对应 file_record.id）
     */
    Long fileId;

    /**
     * 安全的、可临时访问的图片地址
     * 示例：
     * - 本地存储：/api/files/123
     * - 云存储：https://xxx.oss-cn-beijing.aliyuncs.com/...?Expires=...&OSSAccessKeyId=...&Signature=...
     */
    String url;

    /**
     * 原始文件名（如 "唐代仕女服.png"）
     */
    String filename;

    /**
     * 文件大小（单位：字节）
     */
    Long size;

    /**
     * 上传完成时间（ISO 8601 格式，如 2025-10-14T21:30:45）
     */
    LocalDateTime uploadedAt;
}